package com.digua.base.socket

import com.digua.base.socket.dispatcher.DefaultResponseDispatcher
import com.digua.base.socket.dispatcher.IResponseDispatcher
import com.digua.base.socket.dispatcher.ResponseDelivery
import org.java_websocket.drafts.Draft
import java.net.Proxy

class WebSocketSetting {
    /**
     * WebSocket 链接地址
     */
    var connectUrl: String? = null

    /**
     * 消息处理分发器
     */
    var responseProcessDispatcher: IResponseDispatcher? = null
        get() = field ?: DefaultResponseDispatcher()

    /**
     * 设置是否使用子线程处理数据
     */
    var processDataOnBackground = false

    /**
     * 设置网络链接变化后是否自动重连。
     */
    var reconnectWithNetworkChanged = true

    /**
     * 设置心跳间隔时间
     */
    var connectionLostTimeout = 60

    /**
     * 代理
     */
    var mProxy: Proxy? = null

    /**
     * WS 协议实现。
     */
    var draft: Draft? = null

    /**
     * 设置链接的请求头
     */
    var httpHeaders: MutableMap<String, String>? = null

    /**
     * 超时时间
     */
    var connectTimeout = 0L

    /**
     * 重连次数，默认为：10 次
     */
    var reconnectFrequency = 10

    /**
     * 消息发射器
     */
    var responseDelivery: ResponseDelivery? = null

}